// **********************************************************************
//                            Project Nitro
//                        ---------------------
//
//  File        : GameEngine.h
//  Description : Game Engine
//  Author      : Guillaume Delhumeau <guillaume.delhumeau@gmail.com>
//  License     : GNU General Public License 3
//
// **********************************************************************

#ifndef _GAME_ENGINE_H_
#define _GAME_ENGINE_H_

#include <ClanLib/display.h>
#include <ClanLib/gl1.h>
#include <ClanLib/gl.h>
#include <ClanLib/gdi.h>
#include <ClanLib/sdl.h>

#include "Screen.h"
#include "WorldDisplay.h"

class GameEngine{

public:
	GameEngine();

	void init();

	void run();

	void stop();

	void term();

private:

	/** 
	* Screen
	*/
	Screen _screen;

	/**
	* Setup display
	*/
	CL_SetupDisplay setup_display;
	
	/** 
	* Setup OpenGL 1
	*/
	CL_SetupGL1 target_GL1;	

	/**
	* Setup OpenGL 2
	*/
	CL_SetupGL target_GL2;
	
	/** 
	* Setup GDI (software render)
	*/
	CL_SetupGDI target_GDI;

	/** 
	* Main loop controller
	*/
	bool _running;

	/** 
	* World display
	*/
	WorldDisplay _world_display;

};

#endif